#ifndef MOVABLES_H
#define MOVABLES_H


#include <iostream> 
#include <allegro5\allegro.h>
#include <vector>
#include "global_variables.h"
#include "bitmaps.h"

using namespace std;

//define enumerated type Status in which ALIVE == 1 and DEAD == 0
enum Status{DEAD, AlIVE};

class Movables
{
public:
	Movables();

	Movables(Movable_type object_type, int x_loc,int y_loc);
	
	//Don't need constructor as each child class initializes parameters

	void set_location(int new_x_loc, int new_y_loc);

	void set_direction(Direction new_dir);

	void set_status(Status new_status);

//return private data member parameters
	int x();
	int y();
	int radius();
	Direction direction();
	int speed();
	bool status();
//return an int in place of enumerated tye Object_type so that it can be passed into an object
	Movable_type type();

//return the object bitmap, this allows monsters to have their own colours...
	ALLEGRO_BITMAP *bitmap();

private:

//Datamembers of the class
	int _x;
	int _y;
	int _radius;
	Direction _direction;
	int _speed;
	ALLEGRO_BITMAP * _bitmap;
	Status _status;
	Movable_type _type;

};

#endif